package com.tiancheng.trade.settlement.vo.settlement.api;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.apache.commons.lang3.StringUtils;

/**
 * @Auther: tiger
 * @Date: 2024/4/27 15:03
 * @Param ${tags}
 * @Description:清分账单数据明细
 */
@Setter
@Getter
@ToString
public class GetBillDetailVO {

    /**
     * 清分日期-开始日期
     */
    @JsonProperty("start_date")
    private String startDate;

    /**
     * 清分日期-结束日期
     */
    @JsonProperty("end_date")
    private String endDate;

    /**
     * 清分日期-开始日期
     */
    @JsonProperty("start_clear_date")
    private String startClearDate;

    /**
     * 清分日期-结束日期
     */
    @JsonProperty("end_clear_date")
    private String endClearDate;

    /**
     * 商户号
     */
    @JsonProperty("sub_mch_id")
    private String subMchId;

    /**
     * 商品名称
     */
    @JsonProperty("product_name")
    private String productName;

    /**
     * 付款账户
     */
    @JsonProperty("pay_acct")
    private String payAcct;

    /**
     * 收款账户
     */
    @JsonProperty("col_acct")
    private String colAcct;

    /**
     * 费用类型：PL-平台应收，ME-商户应收，CU-营销金额，SC-手续费
     */
    @JsonProperty("cost_type")
    private String costType;

    /**
     * 交易开始日期
     */
    @JsonProperty("pay_start_time")
    private String payStartTime;

    /**
     * 交易结束日期
     */
    @JsonProperty("pay_end_time")
    private String payEndTime;

    /**
     * 是否有差异
     */
    @JsonProperty("is_exception")
    private String isException;

    /**
     * 主订单
     */
    @JsonProperty("order_id")
    private String orderId;

    /**
     * 子订单号
     */
    @JsonProperty("sub_order_id")
    private String subOrderId;

    /**
     * 对账开始日期
     */
    @JsonProperty("bill_start_date")
    private String billStartDate;

    /**
     * 对账结束日期
     */
    @JsonProperty("bill_end_date")
    private String billEndDate;

    /**
     * 核销开始日期
     */
    @JsonProperty("verified_start_time")
    private String verifiedStartTime;

    /**
     * 核销结束日期
     */
    @JsonProperty("verified_end_time")
    private String verifiedEndTime;

    @JsonProperty("current_page")
    private Integer currentPage;

    @JsonProperty("page_size")
    private Integer pageSize;

    public Integer getCurrentPage() {
        if (null == currentPage) {
            currentPage = 0;
        }
        return currentPage;
    }

    public Integer getPageSize() {
        if (null == pageSize) {
            pageSize = 20;
        }
        return pageSize;
    }

    public String getSubMchId() {
        if (StringUtils.isNotEmpty(subMchId)) {
            subMchId = subMchId.trim();
        }
        return subMchId;
    }

    public String getPayAcct() {
        if (StringUtils.isNotEmpty(payAcct)) {
            payAcct = payAcct.trim();
        }
        return payAcct;
    }

    public String getColAcct() {
        if (StringUtils.isNotEmpty(colAcct)) {
            colAcct = colAcct.trim();
        }
        return colAcct;
    }

    public String getOrderId() {
        if (StringUtils.isNotEmpty(orderId)) {
            orderId = orderId.trim();
        }
        return orderId;
    }

    public String getSubOrderId() {
        if (StringUtils.isNotEmpty(subOrderId)) {
            subOrderId = subOrderId.trim();
        }
        return subOrderId;
    }

    public String getProductName() {
        if (StringUtils.isNotEmpty(productName)) {
            productName = productName.trim();
        }
        return productName;
    }

}
